1. Field of the Invention
The present invention relates to accessible user interface elements in a computer program and more particularly to accessible content navigation in a portal environment.
2. Description of the Related Art
Prior to the popularization of the Internet and the subsequent implementation of the World Wide Web (“the Web”), software publishers typically distributed computer applications via storage media such as a computer diskette or compact disc. Initially, such stand-alone computer applications included underlying program logic, data storage and, optionally, a user interface. Recently, given the popularization of the Internet and the Web, it is no longer reasonable to presume that computer applications are distributed exclusively via disk medium. Rather, in many cases, conventional computer programs are distributed electronically via the Internet.
In many cases computer applications are no longer distributed as stand-alone executable programs. Rather, many computer applications are distributed as markup language specified, browser based applications which can include a collection of hypermedia documents such as Web pages which can be viewed in hypermedia content browsers such as Web browsers. In the case of a markup language specified computer program, users can interact with the underlying program logic not through a traditional GUI, but through a GUI provided by GUI elements embedded in a hypermedia document displayed in a content browser.
Conventional markup can specify a user interface and corresponding logic which can be processed and rendered through use of a content browser. Content browsers process display attributes embedded in markup to properly format content also contained within the markup. Notable variants of the content browser include the venerable Web browser, as well as the more recent extensible markup language (XML) browser. Regardless of the type of browser, all conventional markup processors are preconfigured to parse and interpret attribute tags embedded in markup.
A user interface defined by plain content in a markup language can be simplistic in nature and traversing the content of an ordinary Web page can be of no consequence in most circumstances. Portal environments are known to incorporate several pages within a single view such that navigating a portal page can be substantially more challenging than an ordinary Web page. For the uninitiated, a portal environment is a dynamic aggregation of separate markup language specified pages into a single unified page.
Portlets are the visible active components included as part of portal pages. Similar to the graphical windows paradigm of windowing operating systems, each portlet in a portal occupies a portion of the portal page through which the portlet can display associated content from a portlet channel. Portlets are known to include both simple applications such as an electronic mail client, and also more complex applications such as forecasting output from a customer relationship management system. The prototypical portlet can be implemented as server-side scripts executed through a portal server.
Navigation in a portlet can be tedious for those who use a keyboard or screen reader. In the case where multiple user interface objects have been positioned within a portlet, an interacting end user cannot jump quickly to a frequently desired user interface object. Rather, the end user first must tab through the predecessor elements to the desired object in order to reach the desired object. If the focus is with a successor object “past” the desired object, the end user first must backwards tab. Even more challenging, where an object includes multiple points of focus such as in the case of a table, and where an end user desires focus with a particular point in the object, the end user first must tab through the different points of focus in the object, or revert to navigating to the starting point of focus before tabbing to the desired point of focus in the object.
For many end users, a frequented object in a portlet can be personal in nature. In this regard, whereas one end user may frequently interact with one user interface object in a portlet, another end user may frequently interact with a completely different user interface object in the portlet. Current navigation solutions for portlet displays represent all of objects in the portlet as uniform in desirability irrespective of the personal preferences of any one end user. Accordingly, end users often will be left with no choice other than to tediously navigate to a desired object in a conventional manner.